home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 February / Macworld (1999-02).dmg / Games World / SharewareGames / Xconq 7.2.2 / lib / insects.g < prev    next >
Text File  |  1998-05-22  |  6KB  |  259 lines

  1. (game-module "insects"
  2.   (title "Insects")
  3.   (blurb "Bugs, Mr Rico! Zillions of 'em!")
  4.   (variants (see-all false) (world-seen false))
  5.   )
  6.  
  7. (unit-type ant (char "a")
  8.   (help ""))
  9. (unit-type spider (char "s")
  10.   (help ""))
  11. (unit-type skeeter (char "k")
  12.   (help "water strider, can go on land or water"))
  13. (unit-type beetle (char "B")
  14.   (help "slow-moving but powerful"))
  15. (unit-type queen (image-name "crown") (char "Q")
  16.   (help ""))
  17. (unit-type fly (char "f")
  18.   (help "fast-moving, for recon"))
  19. (unit-type bee (char "b")
  20.   (help ""))
  21. (unit-type web (image-name "web-2") (char "%")
  22.   (help "a barrier to movement"))
  23. (unit-type mound (char "*")
  24.   (help ""))
  25. (unit-type nest (char "@")
  26.   (help "the insect's home and breeding ground"))
  27.  
  28. (material-type mobility
  29.   (help "the ability of a web to move before being anchored down"))
  30. (material-type sting
  31.   (help "what a bee attacks with"))
  32.  
  33. (terrain-type puddle (image-name "sky-blue") (char "-"))
  34. (terrain-type grass (image-name "green") (char "+"))
  35.  
  36. (define walkers (ant spider skeeter beetle))
  37. (define movers (ant spider skeeter beetle queen fly bee))
  38. (define flyers (queen fly bee))
  39. (define places (mound nest))
  40. (define land (grass))
  41.  
  42. (add puddle liquid true)
  43.  
  44. ;;; Static relationships.
  45.  
  46. (table vanishes-on
  47.   ((ant spider beetle) puddle true)
  48.   (places puddle true)
  49.   )
  50.  
  51. (table unit-capacity-x
  52.   (spider web 2)
  53.   )
  54.  
  55. (add queen capacity 2)
  56. (add web capacity 1)
  57. (add places capacity 8)
  58.  
  59. (table unit-size-as-occupant
  60.   (u* u* 99)
  61.   (movers (queen mound nest) 1)
  62.   (walkers web 1)
  63.   )
  64.  
  65. (table unit-storage-x
  66.   (bee sting 1)
  67.   (web mobility 1)
  68.   )
  69.  
  70. ;;; Actions.
  71.  
  72. ;                     a s k B Q f b % * @
  73. (add u* acp-per-turn (2 4 2 1 5 7 5 1 1 1))
  74.  
  75. ;;; Movement.
  76.  
  77. (add places speed 0)
  78.  
  79. (table mp-to-enter-terrain
  80.   (u* t* 99)
  81.   (walkers land 1)
  82.   (skeeter puddle 1)
  83.   (skeeter land 2)
  84.   (flyers t* 1)
  85.   (web t* 1)
  86.   )
  87.  
  88. ;; Web gets one move, for placement, then must stay there.
  89.  
  90. (table material-to-move (web mobility 1))
  91.  
  92. (table consumption-per-move (web mobility 1))
  93.  
  94. ;;; Construction.
  95.  
  96. ;               a s  k  B  Q f  b
  97. (add movers cp (2 4 10 30 25 2 10))
  98. (add web cp 5)
  99.  
  100. (table acp-to-create
  101.   (places movers 1)
  102.   (mound queen 0)
  103.   (nest queen 1)
  104.   (spider web 1)
  105.   )
  106.  
  107. (table acp-to-build
  108.   (places movers 1)
  109.   (mound queen 0)
  110.   (nest queen 1)
  111.   (spider web 1)
  112.   )
  113.  
  114. (table supply-on-creation
  115.   (bee sting 1)
  116.   (web mobility 1)
  117.   )
  118.  
  119. ;;; Combat.
  120.  
  121. ;                a   s   k   B   Q   f   b  %   *   @
  122. (add u* hp-max (20  50  20 100  20  10  20  2  10  10))
  123.  
  124. ;; Injured insects move more slowly.
  125.  
  126. (add ant     speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
  127. (add spider  speed-damage-effect ((1 50) (12  50) (13 100) ( 50 100)))
  128. (add skeeter speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
  129. (add beetle  speed-damage-effect ((1 50) (49  50) (50 100) (100 100)))
  130. (add queen   speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
  131. (add fly     speed-damage-effect ((1 50) ( 4  50) ( 5 100) ( 10 100)))
  132. (add bee     speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
  133.  
  134. (table hit-chance
  135.   ;               a   s   k   B   Q  f   b  %   *   @
  136.   (ant u*     (  70  50  70  30  90  80 75 30 100 100 ))
  137.   (spider u*  (  70  50  70  40  90  90 75 70 100 100 ))
  138.   (skeeter u* (  70  50  70  30  90  80 75 50 100 100 ))
  139.   (beetle u*  (  90  70  80  50  95  50 50 70 100 100 ))
  140.   (queen u*   (  10  10  10  10  50  50 40 10 100 100 ))
  141.   (fly u*     (  10  10  10  10  20  50 25 10  50  50 ))
  142.   (bee u*     (  90  70  90  50  90  80 75 30 100 100 ))
  143.   (web u*     (   0   0   0   0   0   0  0  0   0   0 ))
  144.   (mound u*   (   0   0   0   0   0   0  0  0   0   0 ))
  145.   (nest u*    (   0   0   0   0   0   0  0  0   0   0 ))
  146.   )
  147.  
  148. (table damage
  149.   (u* u* 1)
  150.   (movers movers 2d6+5)
  151.   )
  152.  
  153. (table protection
  154.   (nest ant 50)
  155.   (mound nest 30)
  156.   )
  157.  
  158. (table capture-chance
  159.   (web movers ( 50 30 50 20 70 70 50 ))
  160.   (movers mound 100)
  161.   )
  162.  
  163. ;; Bees work by using their sting once in an attack, and then dying.
  164.  
  165. (table consumption-per-attack
  166.   ;; (but should use even if not necessary to attack)
  167.   (bee sting 1)
  168.   )
  169.  
  170. (table hit-by
  171.   (u* sting 1)
  172.   )
  173.  
  174. (table material-to-attack
  175.   (bee sting 1)
  176.   )
  177.  
  178. (table hp-to-garrison
  179.   (queen nest 20)
  180.   )
  181.  
  182. ;;; Backdrop.
  183.  
  184. ;; Insects generally have short lifespans.
  185.  
  186. (table attrition (movers t* 0.50))
  187.  
  188. (table hp-per-starve
  189.   ;; Stinging something is fatal to the bee.
  190.   (bee sting 20.00)
  191.   )
  192.  
  193. ;;; Scoring.
  194.  
  195. (add nest point-value 25)
  196.  
  197. (scorekeeper (do last-side-wins))
  198.  
  199. ;;; Text.
  200.  
  201. (set action-notices '(
  202.   ((destroy u* movers) (actor " eats " actee "!"))
  203.   ))
  204.  
  205. (set event-notices '(
  206.   ((unit-starved web) (0 "dissolves"))
  207.   ((unit-starved u*) (0 "expires"))
  208.   ))
  209.  
  210. (set event-narratives '(
  211.   ((unit-starved web) (0 "dissolved"))
  212.   ((unit-starved u*) (0 "expired"))
  213.   ))
  214.  
  215. ;;; Random setup.
  216.  
  217. (add t* alt-percentile-min (  0   0))
  218. (add t* alt-percentile-max ( 10 100))
  219. (add t* wet-percentile-min ( 50   0))
  220. (add t* wet-percentile-max (100 100))
  221.  
  222. (set edge-terrain puddle)
  223.  
  224. (add nest start-with 1)
  225.  
  226. (table independent-density (mound t* 100))
  227.  
  228. (table favored-terrain (places grass 100))
  229.  
  230. (add u* already-seen 100)
  231.  
  232. (add nest initial-seen-radius 5)
  233.  
  234. (set side-library '(
  235.   ((noun "Buzzer"))
  236.   ((noun "Flitter"))
  237.   ((noun "Flyer"))
  238.   ((noun "Hummer"))
  239.   ))
  240.  
  241. ;;; Documentation.
  242.  
  243. (game-module (instructions (
  244.   "When you defeat your enemies, you get to eat them!"
  245.   ""
  246.   "Capture the other sides' nests."
  247.   )))
  248.  
  249. (game-module (notes (
  250.   "The nest is the center of your world; produce ants to "
  251.   "expand with, spiders to build webs for defense, and skeeters "
  252.   "to cross water."
  253.   )))
  254.  
  255. (game-module (design-notes (
  256.   "This was originally designed by Chris Christensen,
  257.    inspired by a board game called `Chiten I'(?)."
  258.   )))
  259.